/**
 */
package com.logicfishsoftware.plugbench.wPPlugBench.util;

import com.logicfishsoftware.plugbench.wPPlugBench.*;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.util.Switch;

/**
 * <!-- begin-user-doc -->
 * The <b>Switch</b> for the model's inheritance hierarchy.
 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
 * to invoke the <code>caseXXX</code> method for each class of the model,
 * starting with the actual class of the object
 * and proceeding up the inheritance hierarchy
 * until a non-null result is returned,
 * which is the result of the switch.
 * <!-- end-user-doc -->
 * @see com.logicfishsoftware.plugbench.wPPlugBench.WPPlugBenchPackage
 * @generated
 */
public class WPPlugBenchSwitch<T> extends Switch<T>
{
  /**
   * The cached model package
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  protected static WPPlugBenchPackage modelPackage;

  /**
   * Creates an instance of the switch.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public WPPlugBenchSwitch()
  {
    if (modelPackage == null)
    {
      modelPackage = WPPlugBenchPackage.eINSTANCE;
    }
  }

  /**
   * Checks whether this is a switch for the given package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @parameter ePackage the package in question.
   * @return whether this is a switch for the given package.
   * @generated
   */
  @Override
  protected boolean isSwitchFor(EPackage ePackage)
  {
    return ePackage == modelPackage;
  }

  /**
   * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the first non-null result returned by a <code>caseXXX</code> call.
   * @generated
   */
  @Override
  protected T doSwitch(int classifierID, EObject theEObject)
  {
    switch (classifierID)
    {
      case WPPlugBenchPackage.PLUGIN:
      {
        Plugin plugin = (Plugin)theEObject;
        T result = casePlugin(plugin);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.ADMIN_PAGE:
      {
        AdminPage adminPage = (AdminPage)theEObject;
        T result = caseAdminPage(adminPage);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.OPTIONS:
      {
        Options options = (Options)theEObject;
        T result = caseOptions(options);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.OPTIONS_PAGE:
      {
        OptionsPage optionsPage = (OptionsPage)theEObject;
        T result = caseOptionsPage(optionsPage);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.OPTION_TYPE:
      {
        OptionType optionType = (OptionType)theEObject;
        T result = caseOptionType(optionType);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.FLOAT_OPTION:
      {
        FloatOption floatOption = (FloatOption)theEObject;
        T result = caseFloatOption(floatOption);
        if (result == null) result = caseOptionType(floatOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.RANGE_OPTION:
      {
        RangeOption rangeOption = (RangeOption)theEObject;
        T result = caseRangeOption(rangeOption);
        if (result == null) result = caseOptionType(rangeOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.MULTI_CHOICE_OPTION:
      {
        MultiChoiceOption multiChoiceOption = (MultiChoiceOption)theEObject;
        T result = caseMultiChoiceOption(multiChoiceOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.SELECT_OPTION:
      {
        SelectOption selectOption = (SelectOption)theEObject;
        T result = caseSelectOption(selectOption);
        if (result == null) result = caseOptionType(selectOption);
        if (result == null) result = caseMultiChoiceOption(selectOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.CHOICE_OPTION:
      {
        ChoiceOption choiceOption = (ChoiceOption)theEObject;
        T result = caseChoiceOption(choiceOption);
        if (result == null) result = caseOptionType(choiceOption);
        if (result == null) result = caseMultiChoiceOption(choiceOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.URL_OPTION:
      {
        URLOption urlOption = (URLOption)theEObject;
        T result = caseURLOption(urlOption);
        if (result == null) result = caseOptionType(urlOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.INTEGER_OPTION:
      {
        IntegerOption integerOption = (IntegerOption)theEObject;
        T result = caseIntegerOption(integerOption);
        if (result == null) result = caseOptionType(integerOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.BOOLEAN_OPTION:
      {
        BooleanOption booleanOption = (BooleanOption)theEObject;
        T result = caseBooleanOption(booleanOption);
        if (result == null) result = caseOptionType(booleanOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.DATE_OPTION:
      {
        DateOption dateOption = (DateOption)theEObject;
        T result = caseDateOption(dateOption);
        if (result == null) result = caseOptionType(dateOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.COLOUR_OPTION:
      {
        ColourOption colourOption = (ColourOption)theEObject;
        T result = caseColourOption(colourOption);
        if (result == null) result = caseOptionType(colourOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.CUSTOM_OPTION:
      {
        CustomOption customOption = (CustomOption)theEObject;
        T result = caseCustomOption(customOption);
        if (result == null) result = caseOptionType(customOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.STRING_OPTION:
      {
        StringOption stringOption = (StringOption)theEObject;
        T result = caseStringOption(stringOption);
        if (result == null) result = caseOptionType(stringOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.TEXT_OPTION:
      {
        TextOption textOption = (TextOption)theEObject;
        T result = caseTextOption(textOption);
        if (result == null) result = caseOptionType(textOption);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.DEFAULT_OPTION_PARAM:
      {
        DefaultOptionParam defaultOptionParam = (DefaultOptionParam)theEObject;
        T result = caseDefaultOptionParam(defaultOptionParam);
        if (result == null) result = caseStringParam(defaultOptionParam);
        if (result == null) result = caseSelectParam(defaultOptionParam);
        if (result == null) result = caseChoiceParam(defaultOptionParam);
        if (result == null) result = caseCustomParam(defaultOptionParam);
        if (result == null) result = caseTextParam(defaultOptionParam);
        if (result == null) result = caseAbstractStringParam(defaultOptionParam);
        if (result == null) result = caseAbstractParam(defaultOptionParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.ABSTRACT_STRING_PARAM:
      {
        AbstractStringParam abstractStringParam = (AbstractStringParam)theEObject;
        T result = caseAbstractStringParam(abstractStringParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.TEXT_PARAM:
      {
        TextParam textParam = (TextParam)theEObject;
        T result = caseTextParam(textParam);
        if (result == null) result = caseAbstractStringParam(textParam);
        if (result == null) result = caseAbstractParam(textParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.STRING_PARAM:
      {
        StringParam stringParam = (StringParam)theEObject;
        T result = caseStringParam(stringParam);
        if (result == null) result = caseTextParam(stringParam);
        if (result == null) result = caseAbstractStringParam(stringParam);
        if (result == null) result = caseAbstractParam(stringParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.SELECT_PARAM:
      {
        SelectParam selectParam = (SelectParam)theEObject;
        T result = caseSelectParam(selectParam);
        if (result == null) result = caseAbstractParam(selectParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.CHOICE_PARAM:
      {
        ChoiceParam choiceParam = (ChoiceParam)theEObject;
        T result = caseChoiceParam(choiceParam);
        if (result == null) result = caseAbstractParam(choiceParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.CUSTOM_PARAM_FN:
      {
        CustomParamFn customParamFn = (CustomParamFn)theEObject;
        T result = caseCustomParamFn(customParamFn);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.CUSTOM_PARAM:
      {
        CustomParam customParam = (CustomParam)theEObject;
        T result = caseCustomParam(customParam);
        if (result == null) result = caseAbstractParam(customParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.ABSTRACT_PARAM:
      {
        AbstractParam abstractParam = (AbstractParam)theEObject;
        T result = caseAbstractParam(abstractParam);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.CHOICE_FN:
      {
        ChoiceFn choiceFn = (ChoiceFn)theEObject;
        T result = caseChoiceFn(choiceFn);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.OPTION:
      {
        Option option = (Option)theEObject;
        T result = caseOption(option);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.FUNCTION_TYPE:
      {
        FunctionType functionType = (FunctionType)theEObject;
        T result = caseFunctionType(functionType);
        if (result == null) result = caseFunction(functionType);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      case WPPlugBenchPackage.FUNCTION:
      {
        Function function = (Function)theEObject;
        T result = caseFunction(function);
        if (result == null) result = defaultCase(theEObject);
        return result;
      }
      default: return defaultCase(theEObject);
    }
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Plugin</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Plugin</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T casePlugin(Plugin object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Admin Page</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Admin Page</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseAdminPage(AdminPage object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Options</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Options</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseOptions(Options object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Options Page</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Options Page</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseOptionsPage(OptionsPage object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Option Type</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Option Type</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseOptionType(OptionType object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Float Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Float Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseFloatOption(FloatOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Range Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Range Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseRangeOption(RangeOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Multi Choice Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Multi Choice Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseMultiChoiceOption(MultiChoiceOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Select Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Select Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseSelectOption(SelectOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Choice Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Choice Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseChoiceOption(ChoiceOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>URL Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>URL Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseURLOption(URLOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Integer Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Integer Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseIntegerOption(IntegerOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Boolean Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Boolean Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseBooleanOption(BooleanOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Date Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Date Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseDateOption(DateOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Colour Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Colour Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseColourOption(ColourOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Custom Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Custom Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseCustomOption(CustomOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>String Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>String Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseStringOption(StringOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Text Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Text Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseTextOption(TextOption object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Default Option Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Default Option Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseDefaultOptionParam(DefaultOptionParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Abstract String Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Abstract String Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseAbstractStringParam(AbstractStringParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Text Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Text Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseTextParam(TextParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>String Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>String Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseStringParam(StringParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Select Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Select Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseSelectParam(SelectParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Choice Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Choice Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseChoiceParam(ChoiceParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Custom Param Fn</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Custom Param Fn</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseCustomParamFn(CustomParamFn object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Custom Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Custom Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseCustomParam(CustomParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Abstract Param</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Abstract Param</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseAbstractParam(AbstractParam object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Choice Fn</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Choice Fn</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseChoiceFn(ChoiceFn object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Option</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Option</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseOption(Option object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Function Type</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Function Type</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseFunctionType(FunctionType object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>Function</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>Function</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
   * @generated
   */
  public T caseFunction(Function object)
  {
    return null;
  }

  /**
   * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
   * <!-- begin-user-doc -->
   * This implementation returns null;
   * returning a non-null result will terminate the switch, but this is the last case anyway.
   * <!-- end-user-doc -->
   * @param object the target of the switch.
   * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
   * @see #doSwitch(org.eclipse.emf.ecore.EObject)
   * @generated
   */
  @Override
  public T defaultCase(EObject object)
  {
    return null;
  }

} //WPPlugBenchSwitch
